Configuring control devices operable for a load control environment

ABSTRACT

A control device configuration system may receive, store, process, and/or display control device configuration information. The control device configuration system may filter the control device configuration information based on user selections of configuration options for configuration parameters. The control device configuration system may identify compatible and incompatible configuration options for various configuration parameters. The control device configuration system may allow selections of the incompatible configuration options. The control device configuration system may adjust how it filters the control device configuration information based on the selections of the incompatible configuration options. The control device configuration system may implement a configuration model that includes configuration parameter groups for efficient evaluation of user selections.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Non-provisional patentapplication Ser. No. 17/328,721, filed on May 24, 2021, now U.S. Pat.No. 11,418,579, issued Aug. 16, 2022, which is a continuation of U.S.Non-provisional patent application Ser. No. 16/588,973, filed on Sep.30, 2019, now U.S. Pat. No. 11,019,135, issued on May 25, 2021, which isa continuation of U.S. Non-provisional patent application Ser. No.15/468,070, filed Mar. 23, 2017, now U.S. Pat. No. 10,432,705, issued onOct. 1, 2019, which claims priority to U.S. Provisional PatentApplication No. 62/312,416, filed Mar. 23, 2016, the entire disclosuresof which are incorporated by reference herein.

BACKGROUND

A user environment, such as a residence or an office building, mayinclude a load control system that may be installed therein forcontrolling electrical loads. The load control system may includevarious types of load control devices (e.g., motorized window treatmentsor lighting control devices) for controlling the electrical loads. Theload control devices may be characterized by various types of featuresincluding sizes, mounting techniques, colors, load ratings, etc. Forexample, a motorized window treatment may be configured in varioussizes, mounting techniques, colors, etc.

A proposed load control device may be configured/designed by identifyingone of a number of options for each feature of the load control device,for example, before the load control device is purchased and installed.In other words, in many cases a user may be able to design a customizeddevice. Some combinations of the features may be compatible with actualproduct configurations, while others may not. Current software may allowfor a user to select from a list of configuration options available foreach feature of a load control device and submit the selected featuresin a proposal to determine whether the selected options are availablefor configuration of the load control device. For example, a user mayselect a size of a motorized window treatment, fabric type, motor size,width for each panel, mounting type, top treatment, light block, flap,hanger, operator, power, chain drop, chain type, operator side,brackets, hembar, fabric drop, fabric face, railroading, custom seams,seam location, battens, split top treatment, sill angle, side channel,lineal color, fascia end cap color, mounting spacer, custom light gaps,light gap between panels, width type, operator color, tube size, andcoupler type.

Due to the large number of features to be defined for configuring a loadcontrol device and the large number of options available for eachfeature, the memory and processing requirements used for evaluating thevalid and invalid combinations for each of these options after theproposal is submitted to determine whether the selected options meet anactual product configuration are inefficient. Additionally, the optionsselected for the proposed load control device may be incompatible oraesthetically unappealing. For example, the user may select options forthe motor size of a window treatment that do not support the size of thewindow treatment or the weight of the fabric of the window treatment. Asthe software is evaluating selected options for the features of aproposed load control device as a whole, the display configuration ofcurrent software may be inefficient, as the user may have to wait untilafter options have been selected for each feature before the user isnotified that any of the selected features are invalid features for avalid load control device.

Further, due to the validity of the load control device being evaluatedafter the selection of each of the features, the user may be relativelyuninformed regarding the cost of the individual features being selected.Instead, the user may be provided with the cost of the configuration ofthe control device based on totality of the selected options, though theuser may be relatively uninformed as to the cost of each feature. Hence,a user may spend large amounts of time selecting all options toconfigure a load control device only to then determine that the price ofthe device exceeds a desired maximum price the user may wish to spend.

SUMMARY

A control device configuration system is described herein forconfiguring control devices to be installed in a load controlenvironment. A control device configuration system may comprise an ordermanagement device and/or network devices that communicate with the ordermanagement device through a network. The order management device and/orthe network devices may receive, store, process, and/or display controldevice configuration information. The control device configurationinformation may be associated with actual product configurations.

A network device may perform various tasks. The network device may storecontrol device configuration information. The network device may receivefiltering criterion to filter the control device configurationinformation. The network device may receive a selection of aconfiguration option for a configuration parameter and may use theselected configuration option for the configuration parameter as afilter criteria to filter the control device configuration information.The network device may determine whether the filtering criteria iscompatible with previously selected filtering criterion. The networkdevice may remove an incompatible filtering criteria. The network devicemay adjust the previously selected filtering criterion to resolve theincompatibility. The order management device may perform some or all ofthe tasks that are carried out by the network device.

For example, a network device may receive a user selection of aconfiguration parameter. The network device may send the user selectionof the configuration parameter to the order management device. The ordermanagement device may retrieve configuration options associated with theselected configuration parameter. The order management device maydetermine which ones of the configuration options are compatible withpreviously selected configuration options for other configurationparameters and which ones are incompatible. The order management devicemay communicate the determination back to the network device such thatthe network device may display the compatible configuration options forthe selected configuration parameter along with the incompatibleconfiguration options. The network device may dynamically update thedisplay of the compatible and incompatible configuration options for theselected configuration parameter as the user selects a configurationoption for another configuration parameter. The network device mayindicate the division of the compatible and incompatible configurationoptions with a banner or a line. The banner or line may move within thedisplay of the compatible and incompatible configuration options. Thecompatible and incompatible configuration options may be displayed in apull-down window. The network device may dynamically update a pricerange for the selection of control device configurations.

If the network device receives a user selection of an incompatibleconfiguration option, the network device may send the user selectionback to the order management device. The order management device, uponreceiving the user selection of the incompatible configuration option,may identify one or more previously selected configuration options forother configuration parameters to resolve incompatibility. The networkdevice may replace the one or more previously selected configurationoptions for other configuration parameters with default options. Thenetwork device may generate an alert when the user selects theincompatible configuration option for the selected configurationparameter. The alert may be an error message. The error message mayidentify the other configuration parameters defined with the previouslyselected incompatible configuration options and/or recommend changes toresolve incompatibility. The error message may include an option toclose the error message and continue with the user's selection of theincompatible configuration option.

Configuration models may be implemented to increase the efficiency ofsearching through the control device configuration information toidentify compatible and incompatible configurations options in thecontrol device configuration information from the filtering criterion.Each type of control device may have a corresponding configuration modelthat may be implemented to increase processing efficiency. Aconfiguration model may comprise a set of control device configurationparameters for a given type of control device (e.g., shade, lightingdevice, etc.). Each configuration model may have a configurationparameter definition for each configuration parameter that includes aname/identifier of the control device configuration parameter, a set ofavailable configuration options for the configuration parameter (e.g., arange of values, a list of options, a list of ranges, etc.), one or moregroup identifier(s), a selected option (from the set of options)selected by a user for the configuration parameter, and/or validconfiguration options.

To enable faster processing and display of results in response to userselections, each configuration parameter may be assigned to one or moreconfiguration parameter groups identified by the group identifiers. Aconfiguration parameter group may be a set of two or more configurationparameters that may impact each other in response to selection ofcorresponding configuration options. After a user selection of aconfiguration option for a given parameter, the valid configurationoptions may be analyzed and/or updated for each parameter in the samegroup.

While various examples are provided herein for providing control deviceconfigurations, the examples are not meant to be limiting.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a block diagram of an example load control system.

FIG. 2 depicts an example of a control device configuration system.

FIGS. 3A-3E depict an example user interface for being displayed on anetwork device.

FIG. 4 is a flow diagram illustrating an example method of operating acontrol device configuration system.

FIG. 5 is another flow diagram illustrating an example method ofoperating a control device configuration system.

FIG. 6 illustrates example parameter definitions of configurationparameters for a roller shade that may be updated according to aconfiguration model.

FIG. 7 is a system diagram of an example system for configuring controldevices in response to user selection of configuration options.

FIG. 8 is a block diagram illustrating an example computing device.

FIG. 9 is a block diagram illustrating an example system controllerdevice.

FIG. 10 is a block diagram illustrating an example control-targetdevice.

FIG. 11 is a block diagram illustrating an example control-sourcedevice.

DETAILED DESCRIPTION

The foregoing summary, as well as the following detailed description,may be better understood when read in conjunction with the appendeddrawings. The drawings are shown for purposes of illustration and arenon-limiting.

FIG. 1 is a diagram of an example load control system 100 forcontrolling the amount of power delivered from an alternating-current(AC) power source (not shown) to one or more electrical loads. The loadcontrol system 100 may comprise a system controller 110 operable totransmit and/or receive digital messages via a wired and/or a wirelesscommunication link. For example, the system controller 110 may becoupled to one or more wired control devices via a wired digitalcommunication link 104. The system controller 110 may be configured totransmit and/or receive wireless signals, e.g., radio-frequency (RF)signals 106, to communicate with one or more wireless control devices.

The load control system 100 may comprise a number of control devices.The control devices may include control-source devices and/orcontrol-target devices for controlling an electrical load. Thecontrol-source devices may be input devices operable to transmit digitalmessages configured to control an electrical load via a control-targetdevice. For example, control-source devices may transmit the digitalmessages in response to a triggering condition, such as user input,occupancy/vacancy conditions, changes in measured light intensity, etc.The control-target devices may be load control devices operable toreceive digital messages and control respective electrical loads inresponse to the received digital messages. A single control device ofthe load control system 100 may operate as both a control-source and acontrol-target device. The system controller 110 may be configured toreceive digital messages from the control-source devices and transmitdigital messages to the control-target devices in response to thedigital messages received from the control-source devices.

The load control system 100 may comprise a load control device, such asa dimmer switch 120, for controlling a lighting load 122. The dimmerswitch 120 may be adapted to be wall-mounted in a standard electricalwallbox. The dimmer switch 120 may comprise a tabletop or plug-in loadcontrol device. The dimmer switch 120 may comprise a toggle actuator 124(e.g., a button) and/or an intensity adjustment actuator 126 (e.g., arocker switch). Successive actuations of the toggle actuator 124 maytoggle, e.g., turn off and on, the lighting load 122. Actuations of anupper portion or a lower portion of the intensity adjustment actuator126 may respectively increase or decrease the amount of power deliveredto the lighting load 122 and increase or decrease the intensity of thelighting load from a minimum intensity (e.g., approximately 1%) to amaximum intensity (e.g., approximately 100%). The dimmer switch 120 mayfurther comprise a plurality of visual indicators 128, e.g.,light-emitting diodes (LEDs), which may be arranged in a linear arrayand/or may be illuminated to provide feedback of the intensity of thelighting load 122. Examples of wall-mounted dimmer switches aredescribed in greater detail in U.S. Pat. No. 5,248,919, issued Sep. 28,1993, entitled LIGHTING CONTROL DEVICE, and U.S. Patent ApplicationPublication No. 2014/0132475, published May 15, 2014, entitled WIRELESSLOAD CONTROL DEVICE, the entire disclosures of which are herebyincorporated by reference.

The dimmer switch 120 may be configured to receive digital messages fromthe system controller 110 via the RF signals 106 and to control thelighting load 122 in response to the received digital messages. Examplesof dimmer switches operable to transmit and receive digital messages isdescribed in greater detail in U.S. Patent Application Publication No.2009/0206983, published Aug. 20, 2009, entitled COMMUNICATION SYSTEM FORA RADIO-FREQUENCY LOAD CONTROL SYSTEM, the entire disclosure of which ishereby incorporated by reference. The dimmer switch 120 may also, oralternatively, be coupled to the wired digital communication link 104.

The load control system 100 may comprise one or more remotely-locatedload control devices, such as light-emitting diode (LED) drivers 130 fordriving respective LED light sources 132 (e.g., LED light engines). TheLED drivers 130 may be located remotely, for example, in the lightingfixtures of the respective LED light sources 132. The LED drivers 130may be configured to receive digital messages from the system controller110 via the digital communication link 104 and to control the respectiveLED light sources 132 in response to the received digital messages. TheLED drivers 130 may be coupled to a separate digital communication link,such as an Ecosystem® or digital addressable lighting interface (DALI)communication link, and the load control system 100 may include adigital lighting controller coupled between the digital communicationlink 104 and the separate communication link. The LED drivers 132 mayinclude internal RF communication circuits or be coupled to external RFcommunication circuits (e.g., mounted external to the lighting fixtures,such as to a ceiling) for transmitting and/or receiving the RF signals106. The load control system 100 may comprise other types ofremotely-located load control devices, such as, for example, electronicdimming ballasts for driving fluorescent lamps.

The load control system 100 may further comprise a plurality of daylightcontrol devices to control the amount of daylight entering the buildingin which the load control system may be installed. The daylight controldevices may be motorized window treatments 140, such as motorized rollershades. Each motorized window treatment 140 may comprise a coveringmaterial (e.g., a shade fabric). The covering material may be woundaround a roller tube for raising and/or lowering the shade fabric. Eachmotorized window treatment 140 may comprise an electronic drive unit(EDU) 142. If the motorized window treatment is a motorized rollershade, the electronic drive unit 142 may be located inside the rollertube of the motorized roller shade. The electronic drive units 142 maybe coupled to the digital communication link 104 for transmitting and/orreceiving digital messages. The electronic drive units 142 may include acontrol circuit that may be configured to adjust the position of awindow treatment fabric in response to digital messages received fromthe system controller 110 via the digital communication link 104. Eachof the electronic drive units 142 may include memory for storingassociation information for associations with other devices and/orinstructions for controlling the motorized window treatments 140. Eachelectronic drive unit 142 may also, or alternatively, comprise aninternal RF communication circuit or be coupled to an external RFcommunication circuit (e.g., located outside of the roller tube formotorized roller shades) for transmitting and/or receiving the RFsignals 106. While the motorized window treatments 140 are illustratedin FIG. 1 as a motorized roller shade, one or more of the motorizedwindow treatments 140 may comprise other types of daylight controldevices, such as a cellular shade, a drapery, a Roman shade, a Venetianblind, a Persian blind, a pleated blind, a tensioned roller shadesystems, an electrochromic or smart window, and/or other suitabledaylight control device.

The load control system 100 may comprise one or more other types of loadcontrol devices, such as a screw-in luminaire including a dimmer circuitand an incandescent or halogen lamp; a screw-in luminaire including aballast and a compact fluorescent lamp; a screw-in luminaire includingan LED driver and an LED light source; an electronic switch, acontrollable circuit breaker, or other switching device for turning anappliance on and off; a plug-in load control device, controllableelectrical receptacle, or controllable power strip for controlling oneor more plug-in loads; a motor control unit for controlling a motorload, such as a ceiling fan or an exhaust fan; a drive unit forcontrolling a motorized window treatment or a projection screen;motorized interior or exterior shutters; a thermostat for a heatingand/or cooling system; a temperature control device for controlling asetpoint temperature of a heating, ventilation, and air conditioning(HVAC) system; an air conditioner; a compressor; an electric baseboardheater controller; a controllable damper; a variable air volumecontroller; a fresh air intake controller; a ventilation controller;hydraulic valves for use radiators and radiant heating system; ahumidity control unit; a humidifier; a dehumidifier; a water heater; aboiler controller; a pool pump; a refrigerator; a freezer; a televisionor computer monitor; a video camera; an audio system or amplifier; anelevator; a power supply; a generator; an electric charger, such as anelectric vehicle charger; and/or an alternative energy controller.

The load control system 100 may comprise one or more control-sourcedevices, such as a wired keypad device 150, a battery-powered remotecontrol device 152, an occupancy sensor 154, a daylight sensor 156,and/or a radio window sensor 158. The wired keypad device 150 may beconfigured to transmit digital messages to the system controller 110 viathe digital communication link 104 in response to an actuation of one ormore buttons of the wired keypad device 150. The battery-powered remotecontrol device 152, the occupancy sensor 154, the daylight sensor 156,and/or the radio window sensor 158 may be wireless control devices(e.g., RF transmitters) configured to transmit digital messages to thesystem controller 110 via the RF signals 106. For example, thebattery-powered remote control device 152 may be configured to transmitdigital messages to the system controller 110 via the RF signals 106 inresponse to an actuation of one or more buttons of the battery-poweredremote control device 152. The occupancy sensor 154 may be configured totransmit digital messages to the system controller 110 via the RFsignals 106 in response to detection of occupancy and/or vacancyconditions in the space in which the load control system 100 isinstalled. The daylight sensor 156 may be configured to transmit digitalmessages to the system controller 110 via the RF signals 106 in responseto detection of different amounts of natural daylight intensity. Theradio window sensor 158 may be configured to transmit digital messagesto the system controller 110 via the RF signals 106 in response todetection of an exterior daylight intensity coming from outside thespace in which the load control system 100 is installed.

The system controller 110 may be configured to transmit one or moredigital messages to the load control devices (e.g., the dimmer switch120, the LED drivers 130, and/or motorized window treatments 140) inresponse to the received digital messages, e.g., from the wired keypaddevice 150, the battery-powered remote control device 152, the occupancysensor 154, the daylight sensor 156, and/or the radio window sensor 158.While the system controller 110 may receive digital messages from thecontrol-source devices and/or transmit digital messages to the loadcontrol devices for controlling an electrical load, the control-sourcedevices may communicate directly with the load control devices forcontrolling the electrical load.

The load control system 100 may comprise a wireless adapter device 160that may be coupled to the digital communication link 104. The wirelessadapter device 160 may be configured to receive the RF signals 106. Thewireless adapter device 160 may be configured to transmit a digitalmessage to the system controller 110 via the digital communication link104 in response to a digital message received from one of the wirelesscontrol devices via the RF signals 106. For example, the wirelessadapter device 160 may re-transmit the digital messages received fromthe wireless control devices on the digital communication link 104.

The occupancy sensor 154 may be configured to detect occupancy and/orvacancy conditions in the space in which the load control system 100 isinstalled. The occupancy sensor 154 may transmit digital messages to thesystem controller 110 via the RF signals 106 in response to detectingthe occupancy and/or vacancy conditions. The system controller 110 maybe configured to turn one or more of the lighting load 122 and/or theLED light sources 132 on and off in response to receiving an occupiedcommand and a vacant command, respectively. The occupancy sensor 154 mayoperate as a vacancy sensor, such that the lighting loads are turned offin response to detecting a vacancy condition (e.g., not turned on inresponse to detecting an occupancy condition). Examples of RF loadcontrol systems having occupancy and vacancy sensors are described ingreater detail in commonly-assigned U.S. Pat. No. 8,009,042, issued Aug.30, 2011, entitled RADIO-FREQUENCY LIGHTING CONTROL SYSTEM WITHOCCUPANCY SENSING; U.S. Pat. No. 8,199,010, issued Jun. 12, 2012,entitled METHOD AND APPARATUS FOR CONFIGURING A WIRELESS SENSOR; andU.S. Pat. No. 8,228,184, issued Jul. 24, 2012, entitled BATTERY-POWEREDOCCUPANCY SENSOR, the entire disclosures of which are herebyincorporated by reference.

The daylight sensor 156 may be configured to measure a total lightintensity detected in the space in which the load control system 100 maybe installed. The daylight sensor 156 may transmit digital messagesincluding the measured light intensity to the system controller 110 viathe RF signals 106. The digital messages may be used to control anelectrical load (e.g., the intensity of lighting load 122, the motorizedwindow treatments 140 for controlling the position of the coveringmaterial, the intensity of the LED light sources 132, etc.) via one ormore control load control devices (e.g., the dimmer switch 120, theelectronic drive unit 142, the LED driver 130, etc.). Examples of RFload control systems having daylight sensors are described in greaterdetail in commonly-assigned U.S. Pat. No. 8,410,512, issued Apr. 2,2013, entitled SOLID STATE LIGHT EMITTING APPARATUS WITH THERMALMANAGEMENT STRUCTURES AND METHODS OF MANUFACTURING; and U.S. Pat. No.8,451,116, issued May 28, 2013, entitled WIRELESS BATTERY-POWEREDDAYLIGHT SENSOR, the entire disclosures of which are hereby incorporatedby reference.

The radio window sensor 158 may be configured to measure an exteriorlight intensity coming from outside the space in which the load controlsystem 100 is installed. The radio window sensor 158 may be mounted on afaçade of a building, such as the exterior or interior of a window, tomeasure the exterior natural light intensity depending upon the locationof the sun in sky. The radio window sensor 158 may detect when directsunlight is directly shining into the radio window sensor 158, isreflected onto the radio window sensor 158, or is blocked by externalmeans, such as clouds or a building, and may send digital messagesindicating the measured light intensity. The radio window sensor 158 maytransmit digital messages including the measured light intensity to thesystem controller 110 via the RF signals 106. The digital messages maybe used to control an electrical load (e.g., the intensity of lightingload 122, the motorized window treatments 140 for controlling theposition of the covering material, the intensity of the LED lightsources 132, etc.) via one or more control load control devices (e.g.,the dimmer switch 120, the electronic drive unit 142, the LED driver130, etc.). The radio window sensor 158 may also be referred to as ashadow sensor, a cloudy-day sensor, a sun sensor, or another sensor thatmay measure an external light intensity coming from outside of a space.

The load control system 100 may comprise other types of control-sourcedevices, such as temperature sensors; humidity sensors; radiometers;pressure sensors; smoke detectors; carbon monoxide detectors;air-quality sensors; motion sensors; security sensors; proximitysensors; fixture sensors; partition sensors; keypads; kinetic orsolar-powered remote controls; key fobs; cell phones; smart phones;tablets; personal digital assistants; personal computers; laptops;timeclocks; audio-visual controls; safety devices; power monitoringdevices (such as power meters, energy meters, utility submeters, utilityrate meters); central control transmitters; residential, commercial, orindustrial controllers; or any combination of these control-sourcedevices. These control-source devices may transmit digital messages tothe system controller 110 via the RF signals 106. The digital messagesmay be used to control an electrical load (e.g., the intensity oflighting load 122, the motorized window treatments 140 for controllingthe position of the covering material, the intensity of the LED lightsources 132, etc.) via one or more control load control devices (e.g.,the dimmer switch 120, the electronic drive unit 142, the LED driver130, etc.).

The system controller 110 may be operable to be coupled to a network170, such as a wireless or wired local area network (LAN) via a networkcommunication bus 162 (e.g., an Ethernet communication link), e.g., foraccess to the Internet. The system controller 110 may be connected to anetwork switch 164 (e.g., a router or Ethernet switch) via the networkcommunication bus 162 for allowing the system controller 110 tocommunicate with other system controllers. The system controller may beconfigured to communicate via the network 170 with a remote computingdevice 168 for controlling other electrical loads. The remote computingdevice 168 may be a network server or other computing device capable ofstoring instructions or other information for controlling one or moreelectrical loads in the load control system 100. The system controller110 may be wirelessly connected to the network 170, e.g., using Wi-Fitechnology. The system controller 110 may also be configured tocommunicate via the network 170 with one or more network devices, suchas the network device 166.

The network device 166 may be a smart phone (e.g., an iPhone® smartphone, an Android® smart phone, a Windows® smart phone, or a Blackberry®smart phone), a personal computer, a laptop, a tablet device, (e.g., aniPad® hand-held computing device), a Wi-Fi orwireless-communication-capable television, and/or any other suitablewireless or wired communication device (e.g., anInternet-Protocol-enabled device). The network device 166 may beoperable to transmit digital messages to and/or receive digital messagesfrom the system controller 110 and/or the remote computing device 168 inone or more Internet Protocol packets. The network device 166 maycommunicate via the network communication bus 162 and/or another wiredor wireless form of communication (e.g., RF communication signals 106).The network device 166 may be operable to transmit digital messagesdirectly to and/or receive digital messages directly from the loadcontrol devices and/or the input devices. Examples of load controlsystems operable to communicate with network devices on a network aredescribed in greater detail in commonly-assigned U.S. Patent ApplicationPublication No. 2013/0030589, published Jan. 31, 2013, entitled LOADCONTROL DEVICE HAVING INTERNET CONNECTIVITY, the entire disclosure ofwhich is hereby incorporated by reference.

The system controller 110 may be configured to automatically control theload control devices (e.g., the dimmer switch 120, the LED drivers 130,and/or the motorized window treatments 140). For example, the systemcontroller 110 may control the load control devices according to atimeclock schedule, which may be stored in a memory in the systemcontroller 110, and/or based on the sensed daylight intensity that mayindicate the amount of daylight in one or more spaces in which the loadcontrol system 100 is installed.

FIG. 2 is a simplified diagram of a control device configuration system200. The control device configuration system 200 may be used toconfigure/design control devices for purchase, including control-sourcedevices and/or control-target devices. For example, the control-sourcedevices may transmit digital messages to the control-target devices,which may control electrical loads in response to the received digitalmessages.

The control device configuration system 200 may include an ordermanagement device 202 and one or more network devices 204 a to 204 n.The order management device 202 may be a server, a computer, a workstation, or other computing device. The network devices 204 a to 204 nmay include a personal computer, a laptop, a tablet, a smart phone,and/or other suitable network communication device (e.g., anInternet-Protocol-enabled device). The order management device 202 andthe network devices 204 a to 204 n may communicate through a network270.

The order management device 202 and the network devices 204 a to 204 nmay be configured to be wirelessly connected to the network 270, e.g.,using Wi-Fi technology to transmit and/or receive RF signals. Thenetwork devices 204 a to 204 n may send and/or receive information fromthe order management device 202 for processing. The order managementdevice 202 may also, or alternatively, include a web server that enablesthe network devices 204 a to 204 n to display information generated atthe order management device 202 via an application (e.g., web browser orother local application) for receiving user selections and displayinginformation via the network devices 204 a to 204 n. In another example,the network devices 204 a to 204 n may independently generate userinterfaces to display information to a user and receive the userselections for processing.

The order management device 202 may receive and process control deviceconfiguration information from the network devices 204 a to 204 n. Thecontrol device configuration information may identify a configuration ofcontrol devices being requested in an order for manufacturing orotherwise designing the control device. The control device configurationinformation may include configuration information for control-sourcedevices and/or control-target devices. The control device configurationinformation may include configuration data, such as configurationparameters and/or configuration options for valid control devices in thesystem. The control device configuration information may includeconfiguration data for commercially available control devices and/orcontrol devices under development. The commercially available controldevices may include existing control devices and/or control devices thatmay be created by customized orders.

The network devices 204 a to 204 n may store the control deviceconfiguration information. The network devices 204 a to 204 n mayreceive user selections of control device configuration options fordifferent control device configuration parameters. The network devices204 a to 204 n and/or the order management device 202 may compare thecontrol device configuration options with the control deviceconfiguration information to determine whether the selected controldevice configuration options are compatible for manufacturing a controldevice. When the selected control device configuration options areincompatible for a control device, the network device 204 a to 204 nthat received the user selections may identify the incompatibility amongthe selected control device configuration options. Compatible optionsmay include options that meet a predefined threshold, while inincompatible options may include options that fail to meet thepredefined threshold. For example, compatible options may be optionsthat are operable with on another and/or aesthetically pleasing (e.g.,same color, pattern, etc.) in combination. Using a window treatment asan example, incompatible options may result in a window treatment havinga motor that is not strong enough for the weight of the fabric, suchthat the speed at which the motorized window treatment operates fails tomeet a predefined threshold.

Though certain functionality may be described herein as being performedby a network device 204 a to 204 n or the order management device 202,similar functionality may be performed on either device or distributedacross the devices.

FIGS. 3A-3E depict an example user interface 300 (e.g., a screen, apage, or a window) for being displayed on a network device 302. The userinterface 300 may be displayed by a control device configurationapplication being executed at one or more devices, such as an ordermanagement device and/or a network device, having access to controldevice configuration information. For example, the user interface 300may be displayed by a lighting control device configuration applicationor a motorized window treatment application, such as a roller shadeconfiguration application as shown in FIGS. 3A-3E. Though FIGS. 3A-3Eshow the display of information in a single user interface 300, multipleuser interfaces may be implemented to display and/or retrieve similarinformation.

The user interface 300 may include (e.g., display) configurationparameters 304. The configuration parameters 304 may correspond toadjustable parameters for a type of control device, such as a lightingcontrol device or a motorized window treatment. For example, theconfiguration parameters 304 may include size, mounting type, fabrictype, top treatment, control type, an operator type (e.g., type ofmanual operation or drive type for motorized operation), bracket type,hembar configuration, fabric drip, railroading options, seam options,single angle options, side channel options, light gap options, a couplertype, and/or other options for a motorized window treatment. Though theconfiguration parameters 304 shown in FIGS. 3A-3E correspond to amotorized window treatment, other configuration parameters may bedisplayed for other types of control devices.

The configuration parameters 304 may be defined by selections ofcorresponding configuration options. For example, the size parameter312, the mounting parameter 314, and the fabric type parameter 316 maybe defined by the selections of respective configuration options 306,308, and 320. The configuration parameters 304 may be parameters ofcontrol devices identified in the control device configurationinformation. Available configuration options for each configurationparameter 304 may include the options for configuring the controldevices in the control device configuration information. For example,the available configuration options 306 for the size parameter 312 maybe based on the available sizes of the control devices in the controldevice configuration information. As the configuration parameters 304are defined by corresponding configuration options, the configurationoptions may be added to filtering criterion for generating a filteredresult set from the control device configuration information.

The user may select the configuration option 306 to define the sizeparameter 312. The user may select the configuration option 308 todefine the mounting parameter 314. The user may select the configurationoption 320 to define the fabric type parameter 316. As shown in FIG. 3A,the user may select the configuration option 320 from a list (e.g., apull-down window) of configuration options 310 to define the fabric typeparameter 316.

The configuration options 310 may include configuration options that areidentified as being compatible with and/or incompatible with thepreviously selected configuration options 306, 308. For example, theconfiguration options 310 may include compatible configuration options318 and/or incompatible configuration options 322. The compatibleconfiguration options 318 for the fabric type parameter 316 may includefabric types that are compatible with prior user selections ofconfiguration options for other configuration parameters 304. Forexample, the user interface 302 may identify compatible configurationoptions 318 that are compatible with the previously selectedconfiguration options 306, 308. The incompatible configuration options322 for the fabric type parameter 316 may include fabric types that areincompatible with the prior user selections of configuration options forother configuration parameters 304. For example, the user interface 302may identify the incompatible configuration options 322 that areincompatible with the previously selected configuration options 306,308.

The display of configuration options 310 may include an indication 324that distinguishes the compatible configuration options 318 from theincompatible configuration options 322. The indication 324 may be invarious forms such as a dividing line or a message pointing out theincompatible configuration options 322. The indication 324 may informthe user which part of the display of the configuration options 310includes compatible configuration options 318, and which part of thedisplay of the configuration options 310 includes incompatibleconfiguration options 322. The indication 324 may move within thedisplay of the configuration options 310, such as within a drop-downmenu. For example, the indication 324 may be shown while configurationoptions 310 are displayed and/or while incompatible configurationoptions 322 are displayed within the drop-down menu. The user interface302 may identify a user-selected configuration option 320. Theconfiguration option 320 may be added to the filtering criterion forgenerating the filtered result set from the control device configurationinformation from which the configuration options may be displayed.

As the user defines configuration parameters 304, the user interface 302may update price information 326 corresponding to the control deviceshaving the selected configuration options for the defined configurationparameters 304. As shown, the price information 326 may be a range thatmay be determined based on the configuration parameters that a user hasdefined and based on compatible options of all remaining parameters yetto be defined that may result in valid control devices. As a usercontinues to select additional options for other parameters, the priceinformation 326 may automatically update, such as in real time. In thisfashion, a user is able to determine as the user defines a controldevice whether the selected options are resulting in a product within adesired price range. When the user selects order button 328, a filteredresult set may be generated in an order that identifies the controldevices in the control device configuration information that include theconfiguration options for the defined configuration parameters 304. Whenthe user selects cancel button 330, the configuration options for theconfiguration parameters 304 may be reset.

As shown in FIG. 3B, the user may change the configuration optionsdefined for the configuration parameters 304. The filtered result setmay be dynamically updated based on changes to the configuration optionsfor the corresponding configuration parameters 304. For example, FIG. 3Bshows a change to the configuration option 306 for the size parameter312. As the configuration parameters are redefined by correspondingconfiguration options, the configuration options may be added to thefiltering criterion to update the filtered result set from the controldevice configuration information.

The filtering criterion and the filtered result set may be furtherupdated as additional configuration parameters are further defined bycompatible configuration options. For example, after the user changesthe configuration option 306 for the size parameter 312, the priceinformation 326 may update. In addition, the compatible configurationoptions and the incompatible configuration options for the otherconfiguration parameters 304 may be dynamically updated. The dynamicupdate of the configuration options 310 may be performed by identifyingcompatible configuration options 334 and/or incompatible configurationoptions 332 for the control devices in a filtered result set of controldevices based on the changed configuration option 306 for the sizeparameter 312. The user may continue to select configuration options forthe configuration parameters 304, and the configuration options 310 maycontinue to be updated based on the user selections. The configurationoptions 310 for the fabric parameter 316 may be dynamically updated toinclude the compatible configuration options 334 and/or the incompatibleconfiguration options 332. As shown in FIG. 3B, the user may select aconfiguration option 338 among the compatible configuration options 334.The configuration option 338 may be added to the filtering criterion tofurther update the filtered result set from the control deviceconfiguration information. The configuration options for the otherconfiguration parameters 304 that are available for selection by theuser may be further updated based on the selected configuration option338 for the fabric parameter 316. Though the configuration options 310for the fabric parameter 316 are shown as an example, the configurationoptions for other parameters, such as the control type parameter, theoperator type parameter, etc., may be similarly updated.

Certain configuration parameters may be given priority, such that theconfiguration parameters are to be defined by user selection beforeautomatically selecting the configuration options for otherconfiguration parameters. For example, the size, fabric type, controltype, and/or operator type may be given priority, such that a user mayselect a configuration option for the parameter(s) given priority beforeautomatically defining the other configuration parameters. Afterdefining the configuration parameters having priority, a defaultconfiguration option may be automatically selected for the otherconfiguration parameters based upon price and/or popularity. As anexample, a default configuration option may be automatically selectedfor the additional configuration parameters 305 (e.g., identified under“additional options” in FIGS. 3D and 3E) after the configurationparameters with priority have been defined. The automatically selectedconfiguration option for each configuration parameter may be the optionhaving the lowest price, the most popular option from previousselections by the user or other users, or a combination of price andpopularity.

The price range 326 updates as the user's selection of configurationoptions for the control devices changes. The price range 326 may beginupdated after the selection of one or more configuration options. Forexample, the price range 326 may be displayed after the size parameter312 is defined. The control device configuration information may includecorresponding price data for each control device. The control deviceconfiguration information may be filtered based on the selectedconfiguration options for the configuration parameters, and a pricerange 326 corresponding to the control devices having the compatibleconfiguration options may be displayed.

A maximum price may be a configuration parameter that is defined on theuser interface 302 and may be stored as a filtering criteria. The pricerange 326 may be limited to the maximum price. The configuration optionsfor control devices that would cause the price range 326 to exceed themaximum price may be filtered out as incompatible configuration optionsfor a given parameter. The incompatible option may be selected and theuser may be notified to change the maximum price and/or a maximum pricemay be suggested to allow the selection of the incompatible option.

The indication 324 may distinguish the compatible configuration options334 from the incompatible configuration options 332. As shown in anexample in FIG. 3C, the indication 324 may be displayed in differentpositions within the configuration options 310 to indicate theincompatible configuration options 332. The indication 324 may movewithin the pull-down window as different selections are made on otherparameters and/or as a user may scroll up/down the pull-down windowcontaining configuration options 310. For example, as the user scrollsdown, the pull-down window may show a list of incompatible configurationoptions 332. The indication 324 may stay at the top of the pull-downwindow to indicate that the configuration options 310 being displayedare incompatible configuration options 332. Though not shown in FIG. 3C,as the user scrolls up, the pull-down window may show the compatibleconfiguration options 334. The indication 324 may stay at the bottom ofthe pull-down window to indicate that each configuration option seen isa compatible configuration option. In another example, the indication324 may disappear when the next configuration option 310 below thosebeing displayed is a compatible configuration option 334 and/or appearwhen the next configuration option 310 below those being displayed is anincompatible configuration option 332 to indicate the next type ofconfiguration option 310.

As shown in FIG. 3D, an alert 340 may be displayed when a configurationparameter 304 is defined by a corresponding selected configurationoption that is incompatible with prior user selections of configurationoptions for other configuration parameters 304 for configuring a controldevice. The user interface 300 and/or the control device configurationapplication generating the user interface 300 may enter an invalidstate. For example, the invalid state may include displaying the alertmessage and possibly setting the price range 326 to a null value. Inaddition, or alternatively, one or more of the previously selectedconfiguration parameters 304 and/or the price range 326 may be set to anull value in the invalid state. The price range 326 may not be shown,as in FIG. 3D. The entry of the invalid state may assist the user inselecting compatible configuration options for defining a valid controldevice. As such, the user may intentionally select an incompatibleoption to be alerted to options to be changed elsewhere to make theselected option a valid option.

The user interface 300 may go back to a valid state, for example whenthe alert 340 is closed or when a configuration parameter 304 is definedby a corresponding configuration option that is compatible with prioruser selections of configuration options for other configurationparameters 304 for configuring a control device. When the alert 340 isclosed, the selected incompatible option may not be accepted as a validuser selection and may be an invalid user selection.

The alert 340 may be displayed in various forms. For example, the alert340 may be an error message. The alert 340 may indicate that the userselection of the incompatible configuration option is not available inthe control device configuration information. The alert 340 may identifyone or more of the previously defined configuration parameters 304 thatare incompatible with the received configuration option. The alert 340may recommend how to change the previously defined configurationparameters to make them compatible with the received configurationoption. The alert 340 may provide the user with an option to proceedwith the received incompatible configuration option or may allow theuser to close the alert with the system not accepting the receivedincompatible configuration option (e.g., leaving it undefined).

Upon receiving the alert 340, a user may decide to replace theincompatible configuration option with a configuration option that iscompatible with the previously selected configuration options for otherconfiguration parameters 304. If the user replaces the incompatibleconfiguration option with a configuration option that is compatible withthe previously selected configuration options for other configurationparameters 304, the compatible configuration option may be added to thefiltering criterion. If the user retains the incompatible configurationoption, the previously selected configuration options may be reevaluatedfor compatibility with the retained configuration option. Thecompatibility of each previously selected configuration option in thefiltering criterion may be evaluated in order to determine whether tomaintain the previously selected configuration option in the filteringcriterion. After a reevaluation of the previously selected configurationoptions, the previously selected configuration options that areincompatible with the retained configuration option may be set to adefault value, which may be a null value or a default option that iscompatible with the retained configuration option. The filteringcriterion may be rebuilt based on the decision to include the retainedconfiguration option.

The user may select the configuration option 310 to define the fabrictype parameter 316. For example, the user may select the incompatibleconfiguration option 336 as shown in FIG. 3C and FIG. 3D. When the userdefines the fabric type parameter 316 by selecting an incompatibleconfiguration option 336, the user interface 300 may display an alert340, as shown in FIG. 3D. The alert 340 may include a warning symbol342, and/or a message 364 that a motorized window treatment isinconfigurable for example. The alert 340 may identify reasons 346 and348 that the selection of the configuration option 336 is incompatiblewith previously selected configuration options for other configurationparameters, such as configuration parameter 366 and configurationparameter 368, respectively, to fix the incompatibility. The reasons 346and 348 may identify the previously defined other configurationparameters 366 and 368, respectively, as incompatible with the selectedconfiguration option 336. According to one example, the alert 340 mayinclude a close button as an option that closes the alert but does notretain the received incompatible configuration option 336. Here, thesystem may set the parameter to a null value or to a valid option. Inthis fashion, a user is at least able to determine what the user mayneed to change elsewhere for other parameters if the user desires toselect the incompatible configuration option 336.

According to another example, the alert 340 may include a close button344 as an option to retain the received, incompatible configurationoption 336. If the user closes the alert 340, the configurationparameters 366 and/or 368 may be redefined to a default value. If theuser retains the incompatible configuration option 336, the filteringcriterion may be adjusted to include the configuration option 336 andremove the previously selected configuration options for otherconfiguration parameters 304 that are incompatible with theconfiguration option 336. For example, the filtering criterion may beadjusted while the user interface 300 and/or the control deviceconfiguration application generating the user interface 300 is in aninvalid state. The filtering criterion may be rebuilt based on thedecision to retain the incompatible configuration options 336.

The compatibility of each previously selected configuration option inthe filtering criterion may be dynamically re-evaluated. For example, asshown in FIG. 3D, the adjustment may include re-evaluating a previouslyselected configuration option 350 for configuration parameter 352 anddetermining that the selected configuration option 350 is anincompatible configuration option with the retained configuration option336. The adjustment may include removing the previously selectedconfiguration option 350 for the configuration parameter 352 from thefiltering criterion. A configuration option 354 for a configurationparameter 356 and a configuration option 358 for a configurationparameter 360 may be re-evaluated and may be maintained in the filteringcriterion as being compatible with the retained configuration option336. A user may close the alert 340 by selecting a close button 344.

As shown in FIG. 3E, the incompatible configuration option 336 may beretained. The configuration parameters 304 may be updated to displayconfiguration options that are compatible with the retainedconfiguration option 336 and configuration options that are incompatiblewith the retained configuration option 336. For example, the user may beinformed by the alert 340 that the previously selected configurationoption 350 for configuration parameter 352 as an incompatibleconfiguration option with the retained configuration option 336. Theuser may change the previously selected configuration option 350 forconfiguration parameter 352. In a pulldown menu 372, the previouslyselected configuration option 350 may be identified, at 380, as anincompatible configuration option with the retained configuration option336. The pulldown menu 372 may identify compatible and incompatibleconfiguration options with the currently selected configuration options.Configuration options 374 and 376 may be identified as compatibleconfiguration options with the retained configuration option 336. Theuser may replace the previously selected configuration option 350 witheither of the compatible configuration options 374 or 376. A banner 378may show that additional configuration parameters 304 may need to bechanged. For example, replacing the previously selected configurationoption 350 with either configuration option 374 or configuration option376 may not switch the user interface 300/or the control deviceconfiguration application generating the user interface 300 from aninvalid state to a valid state.

The filtering criterion may be adjusted to include the configurationoption 336 when the alert 340 is closed. The previously selectedconfiguration options for other configuration parameters 304 that areincompatible with the configuration option 336 may be removed. Thefiltering criterion may be rebuilt based on the decision to retain theincompatible configuration options 336. For example, a user selection ofthe configuration option 374 or 376 may be included in the filteringcriterion.

The compatibility of each previously selected configuration option inthe filtering criterion may be dynamically re-evaluated. For example, asshown in FIG. 3D, the adjustment may include identifying a previouslyselected configuration option 350 for configuration parameter 352 as anincompatible configuration option with the retained configuration option336. The adjustment may include removing the previously selectedconfiguration option 350 for the configuration parameter 352 from thefiltering criterion. For example, a configuration option 354 for aconfiguration parameter 356 and a configuration option 358 for aconfiguration parameter 360 may be re-evaluated in order to determinewhether to maintain the configuration option 354 and the configurationoption 358 in the filtering criterion.

FIG. 4 is a flow diagram illustrating an example method 400 of operatinga control device configuration system, such as the control deviceconfiguration system 200 shown in FIG. 2 . One or more portions of themethod 400 may be performed by a network device, such as the networkdevices 204 a to 204 n shown in FIG. 2 , and/or an order managementdevice, such as the order management device 202. One or more portions ofthe method 400 may be performed by a control device configurationapplication being executed on a single device, or distributed acrossmultiple devices.

As shown in FIG. 4 , the method 400 may start at 402. At 404, controldevice configuration information may be stored. The control deviceconfiguration information may include valid device configurations forcontrol devices. The control device configuration information mayidentify control device configuration parameters and optionscorresponding to different control devices. The control deviceconfiguration information may include corresponding price data for eachcontrol device. The control device configuration information, orportions thereof, may be stored at the order management device and/orthe network devices.

A configuration parameter may be identified at 406. For example, a usermay select a configuration parameter for which a configuration optionmay be selected. The configuration parameter may include parameters thatmay be configured for a control device stored in the control deviceconfiguration information, such as a size of a motorized windowtreatment, a color of a covering material for a motorized windowtreatment, etc. A configuration option may be received for theidentified configuration parameter at 408. The configuration option maybe selected by a user from a list of available configuration options forthe identified configuration parameter. The configuration option mayinclude a defined size of the motorized window treatment, a definedcolor of the covering material for the motorized window treatment, etc.The configuration option may be for the identified configurationparameter of the control device stored in the control deviceconfiguration information.

At 410, a determination may be made as to whether the receivedconfiguration option is compatible with previously selected filteringcriterion. If no filtering criterion were previously selected, then thereceived configuration option may be determined to be a compatibleconfiguration option. The filtering criterion may include previouslyselected configuration options that are compatible for one or morecontrol devices stored in the control device configuration informationat 404. If the received configuration option for the identifiedconfiguration parameter in combination with previously selectedconfiguration options for other configuration parameters yields at leastone result from the control device configuration information stored at404, the received configuration option may be compatible with thepreviously selected filtering criterion. If the received configurationoption is compatible with the previously selected filtering criterion,the received configuration option may be added to the filteringcriterion at 412.

If the received configuration option is incompatible with the previouslyselected filtering criterion at 412, a determination may be made as towhether to include the received incompatible configuration option in thefiltering criterion at 414. A user may be prompted to select whether tocontinue to filter the control device configuration information storedat 404 based on the received incompatible configuration option. Forexample, the currently received incompatible configuration option may beof greater importance to the user for selecting a control device thanthe previously selected configuration options, so the user may wish tocontinue to filter the control device configuration information storedat 404 based on the received incompatible configuration option.

If the received incompatible configuration option is determined at 414to be included in the filtering criterion, the filtering criterion maybe adjusted at 416 to include the configuration option. The adjustmentat 416 may include identifying one or more of the previously selectedfiltering criterion that is incompatible with the received configurationoption and removing the previously selected incompatible filteringcriterion. The filtering criterion may be rebuilt at 416 based on thedecision to include the received incompatible configuration option at414. The filtering criterion may be maintained at 418 based on thedecision to not include the received incompatible configuration optionat 414.

The compatibility of each previously selected configuration option inthe filtering criterion may be evaluated in order to determine whetherto maintain the previously selected configuration option in thefiltering criterion. The previously selected configuration option may beevaluated according to a priority assigned to the configurationparameter for which the previously selected configuration option existsin the filtering criterion. For example, the configuration parameter forthe configuration option received at 408 may be given higher prioritythan the other configuration parameters for which configuration optionshave been added to the filtering criterion. The other configurationparameters in the filtering criterion may be further prioritized todetermine whether the configurations options in the filtering criterionare incompatible with the updated filtering criterion. For example, thesize of a motorized window treatment may be given a priority over acolor of a covering material and maintained in the filtering criterion.The priority for each configuration parameter may be predefined and/oruser defined. The priority for each configuration parameter may bedefined by the order in which it was identified by the user. The largestdataset of compatible configuration options in the filtering criterionthat include the received incompatible configuration option may beidentified and maintained. The previously selected incompatibleconfiguration options may be identified to the user.

At 420, a control device result set may be updated based on thefiltering criterion defined at 412 and/or 416. The control device resultset may be a filtered device result set that includes the definedconfiguration parameters within the filtering criterion. The filteringcriterion may be applied to the control device configuration informationto identify a set of control devices that include the definedconfiguration parameters including the selected configuration options.The load control device result set may also identify prices and/or aprice range of the control devices within the result set.

At 422, a determination may be made as to whether to continue to defineconfiguration parameters. If a determination is made, at 422, tocontinue to define configuration parameters, the method 400 may returnto 406 to identify additional configuration parameters for being definedand upon which the filtering criterion may be built. If a determinationis made, at 422, to discontinue defining configuration parameters, themethod 400 may proceed to 426 to communicate the control device resultset. The control device result set may be communicated by beingdisplayed on a network device. The control device result set may becommunicated from the network device to the order management device forprocessing. The method 400 may end at 426.

FIG. 5 is a flow diagram illustrating an example method 500 of operatinga control device configuration system, such as the control deviceconfiguration system 200 shown in FIG. 2 . One or more portions of themethod 500 may be performed by a network device, such as the networkdevices 204 a to 204 n shown in FIG. 2 , and/or an order managementdevice, such as the order management device 202 shown in FIG. 2 . One ormore portions of the method 500 may be performed by a control deviceconfiguration application being executed on a single device, ordistributed across multiple devices.

As shown in FIG. 5 , the method 500 may begin at 502. At 504, anindication may be received of a user selection of a configurationparameter of a control device, such as a motorized window treatment.Configuration options for the indicated configuration parameter may bedisplayed at 506. The configuration options may include compatibleand/or incompatible configuration options based on prior user selectionsof configuration options for other configuration parameters forconfiguring a control device. The configuration options may be displayedat 506 by identifying the compatible configuration options and/or theincompatible configuration options for the control device in a filteredresult set of control devices.

At 508, an indication of a user selection of a configuration optionassociated with the chosen configuration parameter may be received. Thecontrol device configuration system may determine, at 510, whether theselected configuration option is incompatible with previously selectedconfiguration options for other configuration parameters of the controldevice. For example, a selected size of a motorized window treatment maybe compared with previously selected color, fabric type, and otherconfiguration options to determine whether the selected size iscompatible with the previously selected color, fabric type, and otherconfiguration options. If the selected configuration option iscompatible with the previously selected configuration options for otherconfiguration parameters, the method 500 may display the selectedconfiguration option for the configuration parameter at 516.

If the selected configuration option is incompatible with the previouslyselected configuration options for other configuration parameters, themethod 500 may generate an alert at 512. The alert may indicate thatselected configuration options are incompatible. The alert may identifythe previously selected configuration options and/or configurationparameters that are incompatible with the selected configuration option.A table may be maintained to connect the alert with a list of thepreviously selected configuration options and/or configurationparameters that are incompatible with the selected configuration option.The alert may identify configuration options for the previously definedconfiguration parameters and/or configuration options alternative to theselected configuration option that may be adopted to fix theincompatibility. For example, the alert may indicate that a previouslyselected size of a motorized window treatment is incompatible with aselected fabric type. The alert may indicate that a smaller size of amotorized window treatment may be compatible with the selected fabrictype and should be adopted to fix the incompatibility. The alert may beprovided to help guide the user to compatible configuration optionsduring the selection of configuration options for control devices.

At 514, a determination may be made as to whether to replace theincompatible configuration option for the configuration parameter with aconfiguration option that is compatible with the previously selectedconfiguration options for other configuration parameters. If adetermination is made to replace the incompatible configuration optionwith a configuration option that is compatible with the previouslyselected configuration options for other configuration parameters, themethod 500 may proceed to 516. Configuration options may be displayedfor the configuration parameter at 516. For example, when the selectedfabric type of the motorized window treatment is incompatible with theselected size of the motorized window treatment, the user may close thealert and may select a fabric type that is compatible with the selectedsize. The control device configuration information may be filtered basedon the selected configuration option. A price range corresponding to thecontrol devices having the compatible configuration options may bedisplayed at 518.

If the determination is made to retain the incompatible configurationoption, the method 500 may proceed to 520. For example, the user maywish to continue to filter control device configuration informationusing the configuration option that is incompatible with the previouslyselected configuration options. If the incompatible configuration optionis given a higher priority and the user wishes to continue with theincompatible configuration option, the previously selected configurationoptions may be reevaluated for compatibility with the selected,incompatible configuration option. For example, when the user closes thealert generated at 512 and retains the incompatible configurationoption, the incompatible configuration option may be given a higherpriority, such that the previously selected configuration options thatare incompatible with the retained configuration option may beidentified. After a reevaluation of the previously selectedconfiguration options, the resulting incompatible configuration optionsmay be set to a default value at 520, which may be a null value or adefault option that is compatible with the retained configurationoption.

At 522, a determination may be made as to whether more parameters are tobe defined, such as by selecting a corresponding configuration option.If additional parameters are to be defined, the method 500 may return to504 to receive another indication of a user selection of a configurationparameter to be defined. If no more parameters are to be defined withcorresponding configuration options, the method 500 may end at 524. Forexample, the user may select a search button or provide anotherindication to perform a filtered search of control devices based on thedefined configuration parameters.

Configuration models may be implemented by the control deviceconfiguration application to increase the efficiency of searchingthrough the control device configuration information to identifycompatible and incompatible configurations options in the control deviceconfiguration information from the filtering criterion. Searchingthrough the control device configuration information having a number ofdifferent sets of options to compare for a number of differentparameters to identify compatible and incompatible options for a resultset may be an inefficient use of processing resources and power at thedevice or devices performing such processing.

Each type of control device may have a corresponding configuration modelthat may be implemented to increase processing efficiency. For example,each roller shade that may be configurable in the system may have acorresponding configuration model defined therefore. A configurationmodel may comprise a set of control device configuration parameters fora given type of control device (e.g., shade, lighting device, etc.).FIG. 6 illustrates example parameter definitions of configurationparameters for a roller shade that may be updated according to aconfiguration model. As shown in FIG. 6 , the configuration parametersmay include a size parameter 602 (e.g., width and/or height), a mountingparameter 604, a fabric type parameter 606, a control type parameter608, an operator type parameter 610, and/or other types of parametersfor being defined for a configurable roller shade. Each configurationmodel may have a configuration parameter definition for eachconfiguration parameter that includes a name/identifier 620 of thecontrol device configuration parameter, a set of available configurationoptions 622 for the configuration parameter (e.g., a range of values, alist of options, a list of ranges, etc.), one or more groupidentifier(s) 624, a selected option 626 (from the set of options 622)selected by a user for the configuration parameter, and/or validconfiguration options 628.

The name/identifier 620, the set of options 622, and/or the groupidentifiers 624 may be predefined prior to runtime and may be staticvalues during runtime. The control device configuration application mayuse the name/identifier 620 of each configuration parameter and thecorresponding set of options 622 to populate the display. For example,as shown in FIGS. 3A-3C, the control device configuration applicationmay use the name/identifier 620 to display the different configurationparameters 304 and the corresponding set of options 622 to display theconfiguration options 310.

To enable faster processing and display of results in response to userselections, each configuration parameter may be assigned to one or moreconfiguration parameter groups identified by group identifiers 624. Aconfiguration parameter group may be a set of two or more configurationparameters that may impact each other in response to selection ofcorresponding configuration options. For example, the compatibleconfiguration options for one parameter in the configuration parametergroup may be affected by the selection of a configuration optioncorresponding to another configuration parameter in that group. As shownin FIG. 6 , the size parameter 602 (e.g., height and/or width) and thefabric type parameter 606 may be part of the same group, as the selectedsize may impact the types of available fabric for that size, and viceversa. The operator type 610 may be in the same group as the size 602,as the size of the roller shade may affect the size of the drive neededto control the roller shade. A given configuration parameter may belongto multiple groups. Each group may be pre-defined prior to runtime basedon the relationship between each parameter.

The selected option 626 for the configuration parameter and/or the validoptions 628 may be defined during runtime of the control deviceconfiguration application from the control device configurationinformation. The selected options 626 may define the filtering criteriaby which valid control devices are filtered in the control deviceconfiguration information. For example, as shown in FIG. 3A, the controldevice configuration application may receive a user selection of theconfiguration option 306 and 308. The configuration options 310 for thefabric type parameter 316 may be dynamically updated to includeconfiguration options that are identified as being compatible withand/or incompatible with the previously selected configuration options306, 308. The valid configuration options 628 may be updated in responseto the user selections to identify the configuration options that arepart of valid devices having the user selected options. The compatibleconfiguration options 318 and/or incompatible configuration options 322may be determined from the valid options 628 and displayed to the user.

The valid configuration options 628 may continue to be updated inresponse to selected options by a user. After a user selection of aconfiguration option for a given parameter, the valid configurationoptions 628 may be analyzed and/or updated for each parameter in thesame group(s) as the parameter of the selected configuration option.Limiting the processing for determining the configuration options 628 bygroup may enable faster processing and use of less resources (e.g.,memory, power, etc.). The valid configuration options 628 may beanalyzed for multiple parameters in parallel to increase efficiency.

One or more of the configuration parameters may be given priority overthe other configuration parameters, such that they are to be definedprior to defining the configuration options for other configurationparameters. The priority may be indicated in the priority field 630 inthe configuration model, or in another location accessible by theprocessing device. The size parameter 602 may be included in each of theconfiguration parameter groups, or in a majority of the configurationparameter groups, as the size parameter 602 may have a relationship witheach of, or a majority of, the other configuration parameters. As such,the size parameter 602 may be given priority over other configurationparameters and may need to be defined prior to the other configurationparameters. One or more other parameters, such as parameters 604-610,may also, or alternatively, be given priority. After selection of anoption for one or more parameters, such as the parameter(s) havingpriority, the other parameters may be set to a default or preselectedvalue and/or price information may begin being displayed.

FIG. 7 is a system diagram of an example system 700 for configuringcontrol devices in response to user selection of configuration optionsfor various parameters. The system 700 may implement a configurationmodel for updating and/or displaying configuration options for afiltered result set of control devices for a control deviceconfiguration system, such as the control device configuration system200 shown in FIG. 2 . As shown in FIG. 7 , a configuration process, orportions thereof, may be implemented by one or more modules 702-708. Themodules 702-708 may be software processes, hardware devices, or acombination thereof. One or more of the modules 702-708 may reside at anetwork device, such as the network devices 204 a to 204 n shown in FIG.2 , and/or an order management device, such as the order managementdevice 202 shown in FIG. 2 . One or more of the modules 702-708 may beimplemented as part of a control device configuration application beingexecuted on a single device, or distributed across multiple devices.Though certain functionality may be described herein as being performedby one or more modules 702-708, similar functionality may be performedon other modules.

The system 700 may include a graphical user interface (GUI) module 702,a configuration module 704, a restriction module 706, and/or anevaluator module 708. The configuration module 704 may store andmaintain a configuration model for enabling faster processing of thecontrol device configuration information and display of results inresponse to user selections of control device options for definingcontrol device parameters. Each configuration model may have aconfiguration parameter definition for each configuration parameter thatincludes a name/identifier of the control device configurationparameter, a set of available options for the configuration parameter(e.g., a range of values, a list of options, a list of ranges, etc.),one or more group identifier(s), a selected option (from the set ofoptions) selected by a user for the configuration parameter, validconfiguration options, and/or priority information. The GUI module 702may receive information in the configuration model for a given controldevice (e.g., shade type, lighting control device type, etc.) from theconfiguration module at 712. The GUI module 702 may use the informationfrom the configuration model to display a user interface to the user at714. The user interface may include the configuration options identifiedfor each parameter in the configuration model. As a user makes one ormore selections in the user interface (e.g., selections of configurationoptions for one or more configuration parameters, the selection of amaximum price, etc.) the GUI module 702 may update the configurationmodule 704 with the user selections by passing these selections to theconfiguration module 704.

The configuration module 704 may receive the user selections, at 716.The configuration module 704 may provide the user selections and thegroup identifiers of the configuration parameter groups corresponding tothe user selections to the restriction module 706, at 718. Therestriction module 706 and/or the evaluator module 708 may operate basedon individual group identifiers of configuration parameter groups.Hence, the configuration module 704 may be viewed as calling therestriction module 706 on a per group basis. If a given configurationparameter fails to have a defined group in the configuration model, theconfiguration module 704 may provide a null value at 718, or fail toprovide a group identifier to the restriction module 706. If a groupfails to have any defined options by a user, the group may not beevaluated.

The restriction module 706 may determine, at 720, whether to applycertain constraints to a given configuration parameter group based onthe user selections. For example, the restriction module 706 may apply aset of constraints on the user selections prior to applying theselections as filtering criteria on the control device configurationinformation. The constraints may be applied to ensure that the user hasmade appropriate selections for performing the filtering beingrequested. The restriction module 706 may identify the configurationparameter group of the parameter for which the user has made a selectionand determine that the appropriate selections have been made for each ofthe parameters in the group to enable the filtering being requested. Forexample, if the restriction module 706 receives a selection of aconfiguration option for the coupler type parameter, which is in aconfiguration parameter group with the size parameter, but the user hasfailed to define a value for the size parameter, the constraints mayfail to be applied to the configuration parameter group. This constraintmay be applied as a determination may be unable to be made as to whethera coupler is even to be implemented in the configuration without thesize parameter being defined. A coupler may be implemented in theconfiguration of a roller shade when the width of the roller shade isgreater than a predefined measurement (e.g., one panel of a rollershade).

If the restriction module 706 determines that the filtering criteria maybe applied to the control configuration information of the configurationparameter group based on the user selections, the restriction module 706may call the evaluator module 708 at 722. If not, the restriction module706 may return an error message to the configuration module 704, whichmay be displayed via the GUI module 702. The error message may identifythe selections to be made by the user to perform the requestedfiltering.

After the appropriate selections are made by the user, the restrictionmodule 706 may request the valid configuration options for eachconfiguration parameter in the configuration parameter group at 722. Therequest, at 722, may provide the evaluator module 708 with the groupidentifier of the group of parameters associated with a user selectionand the user selections. The evaluator module 708 may, for one or moreconfiguration parameters in the group, apply the selected option(s) asfiltering criteria to determine the valid configuration options (if any)of the set of available options for the configuration parameter(s) at730. The evaluator module 708 may apply one or more rules that arespecific to the group(s) of configuration parameters being defined bythe selected configuration options.

Based on the rule(s) and the option(s) selected by the user for eachconfiguration parameter in the configuration parameter group, theevaluator module 708 may (for one or more configuration parameters inthe group) apply the selected options as filtering criteria on thecontrol device configuration information to determine which option(s)(if any) of the set of available options for the configuration parameterare valid at 730. The evaluator module 708 may populate the validoptions field of the definition of the configuration parameters in theconfiguration model. For example, referring to FIG. 6 , the evaluatormodule 708 may populate the valid configuration options 628 for theconfiguration parameters that are a part of the configuration parametergroup being evaluated. The valid configuration options may correspond tovalid control devices that may be configured based on the userselections. Different groups may be evaluated in parallel at theevaluator module 708 to increase efficiency. For example, a differentevaluator module may be implemented for evaluating each configurationparameter group to increase efficiency.

Referring back to FIG. 7 , the system 700 may provide the user with aprice or price range of control devices having the selectedconfiguration based on the user's current selections. Price informationmay be updated by the evaluator module 708 at 730. The price informationfor devices in the configuration parameter group may be a part of therules that are applied during the filtering performed by the evaluatormodule 708. The price information for each control device having optionsnot within the valid options that are determined at 730 may be filtered.The resulting price or price range may be provided with the validconfiguration options to the restriction module 706, at 732. Therestriction module 706 may pass the valid configuration options/priceinformation for each configuration parameter in the configurationparameter group back to the configuration module 704 at 734.

The configuration module 704 may update the configuration model at 736.The configuration module 704 may update the configuration model bycombining the results from each configuration parameter group, which nowincludes an indication of the valid options for each configurationparameter. The configuration module 704 may use the price informationfrom each configuration parameter group to provide a price/price range.The configuration module 704 may receive the results from multipleevaluator modules, which may each process the results for aconfiguration parameter group based on a selection, and aggregate theresults from the evaluator modules. If the configuration module 704 hasreceived a maximum price limitation, the configuration module 704 mayfurther update the configuration model by filtering out the controldevices and/or control device configuration options that would cause theprice or price range to exceed the maximum price limitation.

Once a user has defined a set of options, the configuration module 706will update the configuration model with the valid options for theparameters. When priority is implemented for one or more parameters,after the user has defined the set of options for the parameters havingpriority, the other parameters (e.g., the “additional parameters”) maybe automatically selected. For each additional parameter, theconfiguration module may look at the valid options and select one (e.g.,the cheapest option or the most popular option).

The GUI module 704 may use the information from the updatedconfiguration model to show the compatible/incompatible configurationoptions for each parameter. The compatible configuration options may bethe valid options for a given configuration parameter. The otherconfiguration options may be incompatible options based on previous userselections. The GUI module 704 may use the information from the updatedconfiguration model to produce warnings, such as when a selected optionfor a given configuration parameter is an invalid or incompatibleoption.

As the GUI module 704 may display a user interface that identifies thecompatible and incompatible options for a given configuration parameter,the user may select a configuration option that is incompatible withpreviously selected configuration options. If the user selects anincompatible configuration option, the user interface and/or the controldevice configuration application being executed by the system 700 may beoperated in an invalid state. The GUI module 702 may identify theselection of an incompatible configuration option on the user interfaceand provide the user with an option to cancel the selection and makeanother selection or proceed with the selection of the incompatibleconfiguration option. The incompatible configuration option may beprovided as an invalid option to the configuration module 704 at 716.

The configuration module 704 may identify the selection of the invalidconfiguration option and maintain the current state of the validconfiguration model as a separate version of the configuration model,which may be referred to as ConfigurationModelv1. The system 700 mayproceed from 718-736 with the invalid configuration option being treatedas a single configuration option defined by the user via the userinterface. The system 700 may analyze the selected invalid configurationoption as described herein to produce a separate configuration model.The configuration model produced in response to the previously selectedinvalid configuration option may be referred to as ConfigurationModelv2.ConfigurationModelv2 may include the valid configuration options foreach of the other configuration parameters. The configuration module 704may compare the selected options from ConfigurationModelv1 and the validconfiguration options from ConfigurationModelv2 to determine which ofthe selection options from ConfigurationModelv1 may be removed/changedto allow selection of the invalid configuration option. The selectedoptions to be removed/changed may be provided to the GUI module 702 inthe updated configuration model info at 738. The GUI module 702 maydisplay the selected options to be removed/changed at 740. If the userchooses to proceed with the previously incompatible configurationoption, the previously selected options to be removed/changed may be setto a null value. The price information may be updated in the display toreflect the price of the control devices having the currently selectedoptions.

The user may continue to make selections to narrow the valid controldevices that meet the filtering criteria. Upon user selection, the GUImodule 702 may display a list of the valid control devices that meet thefiltering criteria selected by the user. The list of valid devices maybe determined from the updated configuration model information providedby the configuration module 704. The user may select a control devicefor being ordered, configured, and/or implemented in a load controlsystem. For example, the user may select a roller shade having thedefined configuration parameters selected by the user.

After selecting a control device for being ordered, configured, andimplemented, the user may define the configuration parameters foranother control device. After the user has configured multiple controldevices, the configuration module may perform a specification checkacross the selected control devices. The specification check may beperformed to ensure that each of the selected control devices operatetogether. The specification check may be performed to ensure that eachof the selected options for the control devices were intended by theuser. For example, the specification check may be performed to identifyto a user that the fabric type for two roller shades are different(e.g., different color, pattern, openness of fabric, etc.). Thespecification check may be performed to identify and/or remind a user ofadditional supplies that enable proper functioning of selected devices.For example, the specification check may be performed and a notificationmay be provided to the user of the number of power supplies needed forthe number of roller shades selected. The specification check may also,or alternatively, be performed to check whether a user has enough of thecorrect dual shade brackets, enough main repeaters, enough of thecorrect interface modules, enough panel enclosure, or other additionalsupplies that may be implemented based on the selected control devices.

The system 700 and/or the configuration models may be implemented toprovide a user in real time with an indication of whether a user hasmade a selection to build a valid control device, such as a motorizedwindow shade or a lighting control device. As many control devices, suchas a motorized window shade or a lighting control device, comprises manydifferent configuration options for many configuration parameters to bedefined, allowing a user to be notified in real time of an invalidselection prevents the inefficient use of resources (e.g., memory,processing power, etc.). As the price or price ranges of the controldevice may be updated as the device is being defined, the user may be onnotice of the cost of selections being made in real time.

After selecting the control devices and/or additional supplies, theselected control devices may be ordered, configured, and/or installed inthe load control system. The control devices may be implemented in theload control system as described herein. For example, a motorized windowtreatment or a lighting control device that is configured as describedherein may be installed in a load control system, such as the loadcontrol system 100 shown in FIG. 1 , and controlled as described herein.

FIG. 8 is a block diagram illustrating an example computing device 800,such as the network device 166, the remote computing device 168, one ormore network devices 204 a-204 n, and/or the order management device202, for example. The computing device 800 may be a personal computer, alaptop, a tablet, a smart phone, and/or other suitable networkcommunication device (e.g., an Internet-Protocol-enabled device), forexample. The computing device 800 may be used to control and/orconfigure control of one or more load control devices, such as amotorized window treatment for example. The computing device 800 maycomprise a control circuit 802, which may include one or more of aprocessor (e.g., a microprocessor), a microcontroller, a programmablelogic device (PLD), a field programmable gate array (FPGA), anapplication specific integrated circuit (ASIC), or any suitableprocessing device. The control circuit 802 may perform signal coding,data processing, power control, image processing, input/outputprocessing, and/or any other functionality that enables the computingdevice 800 to perform as described herein.

The control circuit 802 may store information in and/or retrieveinformation from the memory 808. The memory 808 may include anon-removable memory and/or a removable memory for storingcomputer-readable media. The non-removable memory may includerandom-access memory (RAM), read-only memory (ROM), a hard disk, and/orany other type of non-removable memory storage. The removable memory mayinclude a subscriber identity module (SIM) card, a memory stick, amemory card (e.g., a digital camera memory card), and/or any other typeof removable memory. The control circuit 802 may access the memory 808for executable instructions and/or other information that may be used bythe computing device 800. For example, the control circuit may accessthe memory 808 for executable instructions for executing the controldevice configuration application, or portions thereof. The controlcircuit 802 may store the unique identifiers (e.g., serial numbers) ofthe control devices to which the computing device 800 may be associatedin the memory 808. The control circuit 802 may store in the memory 808the control configuration information, filtering criteria, rules forfiltering devices from the control configuration information, and/orother information that may be described for performing the embodimentsdescribed herein. The control circuit 802 may access instructions in thememory 808 for controlling and/or configuring control of one or moreload control devices.

The computing device 800 may comprise a network communication circuit804, which may be adapted to perform wired and/or wirelesscommunications (e.g., with the system controller device 110 or anotherdevice over a network) on behalf of the computing device 800. Thenetwork communication circuit 804 may be a wireless communicationcircuit, for example, including an RF transceiver coupled to an antenna812 for transmitting and/or receiving RF signals (e.g., the RF signals106 shown in FIG. 1 ). The network communication circuit 804 maycommunicate using Wi-Fi, a proprietary protocol (e.g., the ClearConnect®protocol), Bluetooth®, or any other RF communications. The controlcircuit 802 may be coupled to the network communication circuit 804 fortransmitting and/or receiving digital messages via RF signals.

The computing device 800 may comprise an actuator 806. The controlcircuit 802 may be responsive to the actuator 806 for receiving a userinput. For example, the control circuit 802 may be operable to receive abutton press from a user on the computing device 800 for making aselection or performing other functionality on the computing device 800.

The computing device 800 may comprise a display 810. The control circuit802 may be in communication with a display 810 for displayinginformation to a user. The communication between the display 810 and thecontrol circuit 802 may be a two way communication, as the display 810may include a touch screen module capable of receiving information froma user and providing such information to the control circuit 802.

The computing device 800 may comprise a power supply 814 for generatinga DC supply voltage V_(CC) for powering the control circuit 802, thenetwork communication circuit 804, the memory 808, the display 810,and/or other circuitry of the computing device 800. The power supply 814may be a battery or another source of power for the computing device800.

FIG. 9 is a simplified block diagram of an example system controllerdevice 900, which may be deployed as, for example, the system controllerdevice 110 of the load control system 100 shown in FIG. 1 . The systemcontroller device 900 may comprise a control circuit 910, which mayinclude one or more of a processor (e.g., a microprocessor), amicrocontroller, a programmable logic device (PLD), a field programmablegate array (FPGA), an application specific integrated circuit (ASIC), orany suitable processing device. The control circuit 910 may performsignal coding, data processing, power control, input/output processing,and/or any other functionality that enables the system controller device900 to perform as described herein. The system controller device 900 maycomprise a network communication circuit 912 that may be coupled to anetwork connector 914 (e.g., an Ethernet jack), which may be adapted tobe connected to a wired digital communication link (e.g., an Ethernetcommunication link) for allowing the control circuit 910 to communicatewith network devices on a network. The network communication circuit 912may be configured to be wirelessly connected to the network, e.g., usingWi-Fi technology to transmit and/or receive RF signals (e.g., the RFsignals 106 shown in FIG. 1 ).

The system controller device 900 may comprise a wireless communicationcircuit 916, for example, including an RF transceiver coupled to anantenna for transmitting and/or receiving RF signals (e.g., the RFsignals 106 shown in FIG. 1 ). The wireless communication circuit 916may communicate using a proprietary protocol (e.g., the ClearConnect®protocol). The control circuit 910 may be coupled to the wirelesscommunication circuit 916 for transmitting digital messages via the RFsignals 106, for example, to control the load control devices in theload control system 100 in response to digital messages received via thenetwork communication circuit 912. The control circuit 910 may beconfigured to receive digital messages, for example, from the loadcontrol devices and/or the input devices.

The control circuit 910 may be responsive to an actuator 920 forreceiving a user input. For example, the control circuit 910 may beoperable to associate the system controller device 900 with one or morecontrol devices of the load control system 100 in response to actuationsof the actuator 920 during a configuration procedure of the load controlsystem 100. The system controller device 900 may comprise additionalactuators to which the control circuit 910 may be responsive.

The control circuit 910 may store information in and/or retrieveinformation from the memory 918. The memory 918 may include anon-removable memory and/or a removable memory for storingcomputer-readable media. The non-removable memory may includerandom-access memory (RAM), read-only memory (ROM), a hard disk, and/orany other type of non-removable memory storage. The removable memory mayinclude a subscriber identity module (SIM) card, a memory stick, amemory card (e.g., a digital camera memory card), and/or any other typeof removable memory. The control circuit 910 may access the memory 918for executable instructions and/or other information that may be used bythe system controller device 900. The control circuit 910 may store theunique identifiers (e.g., serial numbers) of the control devices towhich the system controller device 900 is associated in the memory 918.

The control circuit 910 may illuminate a visual indicator 922 to providefeedback to a user of the load control system 100. For example, thecontrol circuit 910 may blink or strobe the visual indicator 922 toindicate a fault condition. The control circuit 910 may be operable toilluminate the visual indicator 922 different colors to indicatordifferent conditions or states of the system controller device 900. Thevisual indicator 922 may be illuminated by, for example, one or morelight-emitting diodes (LEDs). The system controller device 900 maycomprise more than one visual indicator.

The system controller device 900 may comprise a power supply 924 forgenerating a DC supply voltage V_(CC) for powering the control circuit910, the network communication circuit 912, the wireless communicationcircuit 916, the memory 918, and/or other circuitry of the systemcontroller device 900. The power supply 924 may be coupled to a powersupply connector 926 (e.g., a USB port) for receiving a supply voltage(e.g., a DC voltage) and/or for drawing current from an external powersource.

FIG. 10 is a block diagram illustrating an example control-targetdevice, e.g., a load control device 1000, as described herein. The loadcontrol device 1000 may be a dimmer switch, an electronic switch, anelectronic ballast for lamps, an LED driver for LED light sources, an ACplug-in load control device, a temperature control device (e.g., athermostat), a motor drive unit for a motorized window treatment, orother load control device. The load control device 1000 may include acommunications circuit 1002. The communications circuit 1002 may includea receiver, an RF transceiver, or other communications module capable ofperforming wired and/or wireless communications via communications link1010. The communications circuit 1002 may be in communication withcontrol circuit 1004. The control circuit 1004 may include one or moregeneral purpose processors, special purpose processors, conventionalprocessors, digital signal processors (DSPs), microprocessors,integrated circuits, a programmable logic device (PLD), applicationspecific integrated circuits (ASICs), or the like. The control circuit1004 may perform signal coding, data processing, power control,input/output processing, or any other functionality that enables theload control device 1000 to perform as described herein.

The control circuit 1004 may store information in and/or retrieveinformation from the memory 1006. For example, the memory 1006 maymaintain a registry of associated control devices and/or controlconfiguration instructions. The memory 1006 may include a non-removablememory and/or a removable memory. The load control circuit 1008 mayreceive instructions from the control circuit 1004 and may control theelectrical load 1016 using the received instructions. The load controlcircuit 1008 may send status feedback to the control circuit 1004regarding the status of the electrical load 1016. The load controlcircuit 1008 may receive power via the hot connection 1012 and theneutral connection 1014 and may provide an amount of power to theelectrical load 1016. The electrical load 1016 may include any type ofelectrical load.

The control circuit 1004 may be in communication with an actuator 1018(e.g., one or more buttons) that may be actuated by a user tocommunicate user selections to the control circuit 1004. For example,the actuator 1018 may be actuated to put the control circuit 1004 in anassociation mode and/or communicate association messages from the loadcontrol device 1000.

FIG. 11 is a block diagram illustrating an example control-source device1100 as described herein. The control-source device 1100 may be a remotecontrol device, an occupancy sensor, a daylight sensor, a window sensor,a temperature sensor, and/or the like. The control-source device 1100may include a control circuit 1102 for controlling the functionality ofthe control-source device 1100. The control circuit 1102 may include oneor more general purpose processors, special purpose processors,conventional processors, digital signal processors (DSPs),microprocessors, integrated circuits, a programmable logic device (PLD),application specific integrated circuits (ASICs), or the like. Thecontrol circuit 1102 may perform signal coding, data processing, powercontrol, input/output processing, or any other functionality thatenables the control-source device 1100 to perform as described herein.The control circuit 1102 may store information in and/or retrieveinformation from the memory 1104. The memory 1104 may include anon-removable memory and/or a removable memory, as described herein.

The control-source device 1100 may include a communications circuit 1108for transmitting and/or receiving information. The communicationscircuit 1108 may transmit and/or receive information via wired and/orwireless communications. The communications circuit 1108 may include atransmitter, an RF transceiver, or other circuit capable of performingwired and/or wireless communications. The communications circuit 1108may be in communication with control circuit 1102 for transmittingand/or receiving information.

The control circuit 1102 may also be in communication with an inputcircuit 1106. The input circuit 1106 may include an actuator (e.g., oneor more buttons) or a sensor circuit (e.g., an occupancy sensor circuit,a daylight sensor circuit, or a temperature sensor circuit) forreceiving input that may be sent to a device for controlling anelectrical load. For example, the control-source device may receiveinput from the input circuit 1106 to put the control circuit 1102 in anassociation mode and/or communicate association messages from thecontrol-source device. The control circuit 1102 may receive informationfrom the input circuit 1106 (e.g., an indication that a button has beenactuated or sensed information). Each of the modules within the networkdevice 1100 may be powered by a power source 1110.

Although features and elements have been described in a particular orderor relation to particular embodiments, many other variations,modifications, and other uses are apparent from the description providedherein. For example, while various types of hardware and/or software maybe described for performing various features, other hardware and/orsoftware modules may be implemented. The methods described herein may beimplemented in a computer program, software, or firmware incorporated ina computer-readable medium for execution by a computer or processor.Examples of computer-readable media include electronic signals(transmitted over wired or wireless connections) and computer-readablestorage media. Examples of computer-readable storage media include, butare not limited to, a read only memory (ROM), a random access memory(RAM), removable disks, and optical media such as CD-ROM disks, anddigital versatile disks (DVDs). The disclosure herein may not be limitedby the examples provided.

What is claimed is:
 1. An electrical control target configurationcontroller, comprising: a display device; and control circuitrycommunicatively coupled to the display device, the control circuitry to:cause a display of a graphical user interface (GUI) that includes aplurality of electrical control-target device entry fields; generate anelectrical control-target device configuration model that includes aplurality of user selectable electrical control-target device parametersthat define at least one electrical control-target device; iteratively,for each the plurality of electrical control-target device entry fields,responsive to selection of respective ones of the plurality ofelectrical control-target device entry fields: determine, based on theelectrical control-target device configuration model, one or moreavailable parameters associated with the respective electricalcontrol-target device entry field and one or more non-availableparameters associated with the respective electrical control-targetdevice entry field; cause a display of the one or more availableparameters and the one or more non-available parameters, wherein the oneor more non-available parameters includes an explanation fornon-availability; responsive to a user selection of one of the listedavailable parameters:  update the electrical control-target deviceconfiguration model; and responsive to a user selection of one of thelisted non-available parameters, for each prior-selected parameter thatcaused the non-availability of the user selected non-availableparameter:  cause a display of a list of revised prior-selectedparameters based on the current parameter selection  receive an inputindicative of a revised prior-selected parameter; and  update theelectrical control-target device configuration model with the currentparameter and the revised prior selected parameter.
 2. The controller ofclaim 1 wherein to display the one or more non-available parameters thatincludes the explanation for non-availability, the control circuitry tofurther: display the one or more non-available parameters that includeat least one parameter electrically incompatible with the electricalcontrol-target device configuration model.
 3. The controller of claim 1wherein to display the one or more non-available parameters thatincludes the explanation for non-availability, the control circuitry tofurther: display the one or more non-available parameters that includeat least one parameter physically incompatible with the electricalcontrol-target device configuration model.
 4. The controller of claim 1wherein to display the one or more non-available parameters thatincludes the explanation for non-availability, the control circuitry tofurther: display the one or more non-available parameters that includeat least one parameter aesthetically incompatible with the electricalcontrol-target device configuration model.
 5. The controller of claim 1wherein the control circuitry to further: calculate an estimated cost ofthe electrical control-target device based on the electricalcontrol-target device configuration model; and cause the GUI to displaythe estimated cost of the electrical control-target device.
 6. Anelectrical control target configuration method, comprising: causing, bycontrol circuitry, a display of a graphical user interface (GUI) thatincludes a plurality of electrical control-target device entry fields ona communicatively coupled display device; generating, by the controlcircuitry, an electrical control-target device configuration model thatincludes a plurality of user selectable electrical control-target deviceparameters that define at least one electrical control-target device;iteratively, for each the plurality of electrical control-target deviceentry fields and responsive to selection of respective ones of theplurality of electrical control-target device entry fields: determining,by the control circuitry, one or more available parameters associatedwith the respective electrical control-target device entry field and oneor more non-available parameters associated with the respectiveelectrical control-target device entry field based on the electricalcontrol-target device configuration model; causing, by the controlcircuitry, a display of the one or more available parameters and the oneor more non-available parameters, wherein the one or more non-availableparameters includes an explanation for non-availability; responsive to auser selection of one of the listed available parameters: updating, bythe control circuitry, the electrical control-target deviceconfiguration model; and responsive to a user selection of one of thelisted non-available parameters, for each prior-selected parameter thatcaused the non-availability of the user selected non-availableparameter: causing, by the control circuitry, a display of a list ofrevised prior-selected parameters based on the current parameterselection receiving, by the control circuitry, an input indicative of arevised prior-selected parameter; and updating, by the controlcircuitry, the electrical control-target device configuration model withthe current parameter and the revised prior selected parameter.
 7. Themethod of claim 6 wherein causing the display of the one or morenon-available parameters that includes the explanation fornon-availability, further comprises: causing, by the control circuitry,the display of the one or more non-available parameters that include atleast one parameter electrically incompatible with the electricalcontrol-target device configuration model.
 8. The method of claim 6wherein causing the display of the one or more non-available parametersthat includes the explanation for non-availability, further comprises:causing, by the control circuitry, the display of the one or morenon-available parameters that include at least one parameter physicallyincompatible with the electrical control-target device configurationmodel.
 9. The method of claim 6 wherein causing the display of the oneor more non-available parameters that includes the explanation fornon-availability, further comprises: causing, by the control circuitry,the display of the one or more non-available parameters that include atleast one parameter aesthetically incompatible with the electricalcontrol-target device configuration model.
 10. The method of claim 6,further comprising: calculating, by the control circuitry, an estimatedcost of the electrical control-target device based on the electricalcontrol-target device configuration model; and causing, by the controlcircuitry, a display of the estimated cost of the electricalcontrol-target device.
 11. A non-transitory, machine-readable, storagedevice that includes instructions that, when executed by electricalcontrol target configuration control circuitry, cause the controlcircuitry to: cause a display of a graphical user interface (GUI) thatincludes a plurality of electrical control-target device entry fields ona communicatively coupled display device; generate an electricalcontrol-target device configuration model that includes a plurality ofuser selectable electrical control-target device parameters that defineat least one electrical control-target device; iteratively, for each theplurality of electrical control-target device entry fields andresponsive to selection of respective ones of the plurality ofelectrical control-target device entry fields: determine one or moreavailable parameters associated with the respective electricalcontrol-target device entry field and one or more non-availableparameters associated with the respective electrical control-targetdevice entry field based on the electrical control-target deviceconfiguration model; cause a display of the one or more availableparameters and the one or more non-available parameters, wherein the oneor more non-available parameters includes an explanation fornon-availability; responsive to a user selection of one of the listedavailable parameters: update the electrical control-target deviceconfiguration model; and responsive to a user selection of one of thelisted non-available parameters, for each prior-selected parameter thatcaused the non-availability of the user selected non-availableparameter: cause a display of a list of revised prior-selectedparameters based on the current parameter selection receive an inputindicative of a revised prior-selected parameter; and update theelectrical control-target device configuration model with the currentparameter and the revised prior selected parameter.
 12. Thenon-transitory, machine-readable, storage device of claim 11 wherein theinstructions that cause the electrical control target configurationcontrol circuitry to cause the display of the one or more non-availableparameters that includes the explanation for non-availability, furthercause the control circuitry to: cause the display of the one or morenon-available parameters that include at least one parameterelectrically incompatible with the electrical control-target deviceconfiguration model.
 13. The non-transitory, machine-readable, storagedevice of claim 11 wherein the instructions that cause the electricalcontrol target configuration control circuitry to cause the display ofthe one or more non-available parameters that includes the explanationfor non-availability, further cause the control circuitry to: cause thedisplay of the one or more non-available parameters that include atleast one parameter physically incompatible with the electricalcontrol-target device configuration model.
 14. The non-transitory,machine-readable, storage device of claim 11 wherein the instructionsthat cause the electrical control target configuration control circuitryto cause the display of the one or more non-available parameters thatincludes the explanation for non-availability, further cause the controlcircuitry to: cause by the control circuitry, the display of the one ormore non-available parameters that include at least one parameteraesthetically incompatible with the electrical control-target deviceconfiguration model.
 15. The non-transitory, machine-readable, storagedevice of claim 11 wherein the instructions, when executed by theelectrical control target configuration control circuitry, further causethe control circuitry to: calculate an estimated cost of the electricalcontrol-target device based on the electrical control-target deviceconfiguration model; and cause a display of the estimated cost of theelectrical control-target device.